#include "ConfigurationFile.h"

#include <sstream>
#include <string.h>
#include <iostream>

#include <BaseException.h>


ConfigurationFile::ConfigurationFile() {
	
}

ConfigurationFile::~ConfigurationFile() {

}

std::string ConfigurationFile::getProperty(std::string propertyName) {
	std::ifstream configFile;
	std::string nameConfigFile = "./etc/ConfigFile.conf";
	configFile.open(nameConfigFile.c_str());
	std::string value = "";
	if (configFile.is_open()) {
		configFile.seekg(0,configFile.beg);
		std::string line;
		bool propFound = false;
		while( std::getline(configFile, line) && !propFound ) {
			std::istringstream is_line(line);
			std::string key;
			if( std::getline(is_line, key, '=') && key.compare(propertyName) == 0 ) { 
					std::getline(is_line, value);
					propFound = true;
			}
		}
		if(!propFound) {
			throw BaseException("No se encontro la propiedad "+propertyName+" en el archivo de configuracion");
		}
	}
	else {
		throw BaseException("No se pudo abrir el archivo de configuracion "+nameConfigFile);
	}
	return value;
}
